#ifndef PRONGSSUBSYSTEM_HPP
#define PRONGSSUBSYSTEM_HPP

#include "WPILib.h"
#include "RobotSubsystem.h"
#include "OperatorButton.h"
#include "TimedSolenoid.h"

class ProngsSubsystem : public RobotSubsystem
{
public:
	enum ArmPosition
	{
		kUp,
		kDown
	};
	
	ProngsSubsystem();
	virtual ~ProngsSubsystem();
		
	virtual void DoRobotInit(void);
	virtual void DoAutonomousInit(void);
	virtual void DoTeleopInit(void);
	virtual void DoDisabledInit(void);
	virtual void DoAutonomousPeriodic(void);
	virtual void DoTeleopPeriodic(void);
	virtual void DoDisabledPeriodic(void);
	
	void SetPosition(ArmPosition position);
	bool GetIsProngsDown();
private:
	TimedSolenoid *m_downSolenoid;
	TimedSolenoid *m_upSolenoid;
	OperatorButton *m_pickupOverride;
	OperatorButton *m_prongsUpButton;
	OperatorButton *m_prongsDownButton;
	OperatorButton *m_armDeployedSwitch;
	OperatorButton *m_armBackSwitch;
	DigitalInput *m_prongsDownLimit;
	ArmPosition m_position;
	void ManualProngs();
};

#endif
